#include <iostream>

using namespace std;
//设计一个英雄的结构体，包括成员姓名，年龄，性别;
//创建结构体数组，数组中存放5名英雄。
//通过冒泡排序的算法，将数组中的英雄按照年龄进行升序排序，最终打印排序后的结果。

//1、设计一个英雄的结构体
struct Hero {
    string name;//姓名
    int age;//年龄
    string sex;//性别
};

void bubble(struct Hero hero[], int len) {
    for (int i = 0; i < len - 1; ++i) {
        for (int j = 0; j < len - i - 1; ++j) {
            if (hero[j].age > hero[j + 1].age) {
                struct Hero temp = hero[j];
                hero[j] = hero[j + 1];
                hero[j + 1] = temp;
            }
        }
    }
}

void print(struct Hero hero[], int len) {
    for (int i = 0; i < len; ++i) {
        cout << "姓名为" << hero[i].name << ",年龄为" << hero[i].age << ",性别为" << hero[i].sex << endl;
    }
}

int main() {
    //2、创建数组存放5名英雄
    struct Hero hero[5] = {
            {"刘备", 23, "男"},
            {"关羽", 22, "男"},
            {"张飞", 20, "男"},
            {"赵云", 21, "男"},
            {"貂蝉", 19, "女"},
    };
    //3、对数组进行排序，按照年龄进行升序排序
    int len = sizeof(hero) / sizeof(Hero);
    bubble(hero, len);
    //4、输出排序后的结果
    print(hero, len);
    return 0;
}
